#ifndef	ARRIVE_H
#define ARRIVE_H

#include "SteeringBehaviour.h"

namespace Engine
{
	namespace SteeringBehaviourTypes
	{
		const unsigned int ARRIVE = Hash("Arrive");
	}

	class Arrive : public SteeringBehaviour
	{
		private:
			float m_targetRadius;
			float m_targetRadiusSquared;

			float m_slowRadius;
			float m_slowRadiusSquared;

			float m_timeToTarget;

		public:
			Arrive();

			void SetSlowRadius(float r);
			void SetTargetRadius(float r);

			float GetTargetRadius() const {return m_targetRadius;}
			float GetSlowRadius() const {return m_slowRadius;}

			//inherited from SteeringOutput
			void Update(SteeringOutput* output) override;
			const char* GetTypeName() const override {return "Arrive";}
			unsigned int GetHash() const override {return SteeringBehaviourTypes::ARRIVE;}

	};
}

#endif